home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993…ch: Other People's Memory / ADC Developer CD (1993-03) (''Other People's Memory'')_iso / Dev.CD Mar 93.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / PIIGSIncludes / MediaControl.p < prev    next >
Encoding:
Text File  |  1992-08-04  |  9.5 KB  |  249 lines  |  [TEXT/MPS ]

  1. {********************************************
  2. ; File: MediaControl.p
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1991-1992
  6. ; All Rights Reserved
  7. ;
  8. ********************************************}
  9.  
  10. UNIT MediaControl;
  11.  
  12. INTERFACE
  13.  
  14. USES    Types, GSOS;
  15.  
  16. {    Control values for MCControl: }
  17.  
  18. CONST
  19.     mcCInit = $0001;        { Initialize player. }
  20.     mcCEject = $0002;        { Eject disc. }
  21.     mcCVideoOn = $0003;        { Turn video on. }
  22.     mcVideoOff = $0004;        { Turn video off. }
  23.     mcCDisplayOn = $0005;    { Turn video position display on. }
  24.     mcCDisplayOff = $0006;    { Turn video position display off. }
  25.     mcCBlankVideo = $0007;    { Blank video for next MCSearchTo. }
  26.     mcCDefaultCom = $0008;    { Set default communications. }
  27.     mcCLockDev = $0009;        { Set the device to locked. }
  28.     mcCUnLockDev = $000A;    { Unlock the device. }
  29.  
  30.     mcC8Data1Stop = $0028;    { Set 8 - data  1 - stop bit. }
  31.     mcC7Data1Stop = $0029;    { Set 7 - data  1 - stop bit. }
  32.     mcC6Data1Stop = $002A;    { Set 6 - data  1 - stop bit. }
  33.     mcC5Data1Stop = $002B;    { Set 5 - data  1 - stop bit. }
  34.     mcC8Data2Stop = $002C;    { Set 8 - data  2 - stop bit. }
  35.     mcC7Data2Stop = $002D;    { Set 7 - data  2 - stop bit. }
  36.     mcC6Data2Stop = $002E;    { Set 6 - data  2 - stop bit. }
  37.     mcC5Data2Stop = $002F;    { Set 5 - data  2 - stop bit. }
  38.  
  39.     mcCBaudDflt = $0032;    { Set baud rate to control panel setting. }
  40.     mcCBaud50 = $0033;        { Set 50 baud. }
  41.     mcCBaud75 = $0034;        { Set 75 baud. }
  42.     mcCBaud110 = $0035;        { Set 110 baud. }
  43.     mcCBaud134 = $0036;        { Set 134 baud. }
  44.     mcCBaud150 = $0037;        { Set 150 baud. }
  45.     mcCBaud300 = $0038;        { Set 300 baud. }
  46.     mcCBaud600 = $0039;        { Set 600 baud. }
  47.     mcCBaud1200 = $003A;    { Set 1200 baud. }
  48.     mcCBaud1800 = $003B;    { Set 1800 baud. }
  49.     mcCBaud2400 = $003C;    { Set 2400 baud. }
  50.     mcCBaud3600 = $003D;    { Set 3600 baud. }
  51.     mcCBaud4800 = $003E;    { Set 4800 baud. }
  52.     mcCBaud7200 = $003F;    { Set 7200 baud. }
  53.     mcCBaud9600 = $0040;    { Set 9600 baud. }
  54.     mcCBaud19200 = $0041;    { Set 19200 baud. }
  55.  
  56.     mcCModem = $0064;        { Set to modem port. }
  57.     mcCPrinter = $0065;        { Set to printer port. }
  58.  
  59.     mcCIgnoreDS = $00C8;    { Ignore "disk switched" GSOS errors. }
  60.     mcCReportDS = $00C9;    { Report "disk switched" GSOS errors. }
  61.  
  62.  
  63.  
  64. {    Values for MCGetFeatures: }
  65.  
  66.     mcFTypes = 0;            { How the disc is organized (frames, chapters, etc.). }
  67.     mcFStep = 1;            { Maximum fps speed value (normal is 255). }
  68.     mcFRecord = 2;            { Device supports MCRecord. }
  69.     mcFVideo = 3;            { Device supports toggling video. }
  70.     mcFEject = 4;            { Device supports ejecting medium. }
  71.     mcFLock = 5;            { Device supports user lock (locking user from physically
  72.                               operating the device). }
  73.     mcFVDisplay = 6;        { Device supports video display of location. }
  74.     mcFVOverlay = 7;        { No. of lines of overlay characters device supports. }
  75.     mcFVOChars = 8;            { No. of chars/line supported by overlay. }
  76.     mcFVolume = 9;            { Does volume control? }
  77.  
  78.  
  79.  
  80. {    Position unit types for MCGetPosition and other calls: }
  81.  
  82.     mcInChapters = 1;        { Position is measured in chapters. }
  83.     mcInFrames = 2;            { Position is measured in frames. }
  84.     mcInTime = 3;            { Position is measured in hours,minutes,seconds,blocks. }
  85.  
  86.  
  87.  
  88. {    Status values for MCGetStatus: }
  89.  
  90.     mcSUnknown = $0000;        { Player unable to determine this status. }
  91.  
  92.     mcSDeviceType = $0000;    { "Device type" selector. }
  93.     mcSLaserDisc = $0001;    { Video laser disc player. }
  94.     mcSCDAudio = $0002;        { Audio CD player. }
  95.     mcSCDLaserCD = $0003;    { Combination laser/CD player. }
  96.     mcSVCR = $0004;            { VCR. }
  97.     mcSCamCorder = $0005;    { Video camera. }
  98.  
  99.     mcSPlayStatus = $0001;    { "Play status" selector. }
  100.     mcSPlaying = $0001;        { The device is playing. }
  101.     mcSStill = $0002;        { The device is not playing (paused). }
  102.     mcSParked = $0003;        { The device is shut down. }
  103.  
  104.     mcSDoorStatus = $0002;    { "Player door" status. }
  105.     mcSDoorOpen = $0001;
  106.     mcSDoorClosed = $0002;
  107.  
  108.     mcSDiscType = $0003;    { "Disc type" selector. }
  109.     mcS_CLV = $0001;        { constant linear velocity }
  110.     mcS_CAV = $0002;        { constant angular velocity }
  111.     mcS_CDV = $0003;        { compact disc video }
  112.     mcS_CD = $0004;            { compact disc }
  113.  
  114.     mcSDiscSize = $0004;    { "Disc size" selector. }
  115.     mcSDisc3inch = $0003;
  116.     mcSDisc5inch = $0005;
  117.     mcSDisc8inch = $0008;
  118.     mcSDisc12inch = $000C;
  119.  
  120.     mcSDiscSide = $0005;    { "Disc side" selector. }
  121.     mcSSideOne = $0001;
  122.     mcSSideTwo = $0002;
  123.  
  124.     mcSVolumeL = $0006;        (* Current Left volume selector *)
  125.     mcSVolumeR = $0007;        (* Current Right volume selector *)
  126.  
  127.  
  128. {    Time parameter values for MCGetTimes: }
  129.  
  130.     mcElapsedTrack = $0000;    { Elapsed time on current track/chapter. }
  131.     mcRemainTrack = $0001;    { Remaining time on current track/chapter. }
  132.     mcElapsedDisc = $0002;    { Elapsed time on disc. }
  133.     mcRemainDisc = $0003;    { Remaining time on disc. }
  134.     mcTotalDisc = $0004;    { Total run time on disc. }
  135.     mcTotalFrames = $0005;    { Total number of frames on disc. }
  136.     mcTracks = $0006;        { Binary start and ending track numbers (bits 31-16 = ending,
  137.                               bits 15-0 = starting track number.) }
  138.     mcDiscID = $0007;        (* Disc's identifier. *)
  139.  
  140.  
  141.  
  142. {    Audio values: }
  143.  
  144.     mcAudioOff = $0000;            { Audio off. }
  145.     mcAudioRight = $0001;        { Audio thru right channel only. }
  146.     mcAudioLinR = $0002;        { Audio left in right only. }
  147.     mcAudioMinR = $0003;        { Audio mixed in right only. }
  148.     mcAudioRinL = $0004;        { Audio right in left only. }
  149.     mcAudioRinLR = $0005;        { Audio right in left and right. }
  150.     mcAudioReverse = $0006;        { Audio right in left, left in right. }
  151.     mcAudioRinLMR = $0007;        { Audio right in left, mixed in right. }
  152.     mcAudioLeft = $0008;        { Audio left channel only. }
  153.     mcAudioStereo = $0009;        { Audio both channels (in stereo). }
  154.     mcAudioLinLR = $000A;        { Audio left in left and right. }
  155.     mcAudioLinLMR = $000B;        { Audio left in left, mixed in right. }
  156.     mcAudioMinL = $000C;        { Audio mixed in left only. }
  157.     mcAudioMinLRinR = $000D;    { Audio mixed in left, right in right. }
  158.     mcAudioMinLLinR = $000E;    { Audio mixed in left, left in right. }
  159.     mcAudioMonaural = $000F;    { Audio mixed in left and right (monaural). }
  160.  
  161.  
  162.  
  163. {    Error codes: }
  164.  
  165.     mcUnImp = $2601;        { Unimplemented for this device. }
  166.     mcNotApplic = mcUnImp;    { <see mcUnImp> }
  167.     mcBadSpeed = $2602;        { Invalid speed specified. }
  168.     mcBadUnitType = $2603;    { Invalid unit type specified. }
  169.     mcTimeOutErr = $2604;    { Timed out during device read. }
  170.     mcNotLoaded = $2605;    { No driver is currently loaded. }
  171.     mcBadAudio = $2606;        { Invalid audio value. }
  172.     mcDevRtnError = $2607;    { Device returned error (unable to perform). }
  173.     mcUnRecStatus = $2608;    { Unrecognizable status from device. }
  174.     mcBadSelector = $2609;    { Invalid selector value specified. }
  175.     mcFunnyData = $260A;    { Funny data received (try again). }
  176.     mcInvalidPort = $260B;    { Invalid port specified. }
  177.     mcOnlyOnce = $260C;        { Scans only once. }
  178.     mcNoResMgr = $260D;        { Resource manager not active. }
  179.     mcItemNotThere = $260E;    { Item not found in database. }
  180.     mcWasShutDown = $260F;    { Media Control Toolset was already shut down. }
  181.     mcWasStarted = $2610;    { Media Control Toolset was already started. }
  182.     mcBadChannel = $2611;    { Invalid channel number. }
  183.     mcInvalidParam = $2612;    { Invalid parameter. }
  184.     mcCallNotSupported = $2613;    { Call is not supported. }
  185.  
  186. TYPE
  187.     termMaskRec= PACKED RECORD
  188.         mask: CHAR;
  189.         termChar: CHAR;
  190.         END (* termMaskRec *);
  191.  
  192.  
  193. (* Generic tool calls *)
  194.  
  195. PROCEDURE MCBootInit;
  196. PROCEDURE MCStartUp(userID:INTEGER);
  197. PROCEDURE MCShutDown;
  198. FUNCTION MCVersion : INTEGER;
  199. PROCEDURE MCReset;
  200. FUNCTION MCStatus : BOOLEAN;
  201.  
  202. (* Driver specific routines *)
  203.  
  204. PROCEDURE MCLoadDriver(mcChannelNo: INTEGER);
  205. PROCEDURE MCUnLoadDriver(mcChannelNo: INTEGER);
  206. PROCEDURE MCDStartUp(mcChannelNo: INTEGER;  portNamePtr: String255Ptr; drvrUserID: INTEGER);
  207. PROCEDURE MCDShutDown(mcChannelNo: INTEGER);
  208.  
  209. (* Generic controller routines *)
  210.  
  211. FUNCTION MCBinToTime(mcBinVal: Longint) : LongInt;
  212. PROCEDURE MCControl(mcChannelNo, ctlCommand: INTEGER);
  213. FUNCTION MCGetDiscID(mcChannelNo: INTEGER) : LongInt;
  214. PROCEDURE MCGetDiscTitle(mcDiscsID: LongInt; titlePtr: String255Ptr);
  215. FUNCTION MCGetDiscTOC(mcChannelNo, mcTrackNo: INTEGER) : LongInt;
  216. PROCEDURE MCGetErrorMsg(mcErrorNo: INTEGER; msgPtr: String255Ptr);
  217. FUNCTION MCGetFeatures(mcChannelNo, mcFeatSel: INTEGER) : LongInt;
  218. PROCEDURE MCGetName(mcChannelNo: INTEGER; namePtr: String255Ptr);
  219. FUNCTION MCGetNoTracks(mcChannelNo: INTEGER) : INTEGER;
  220. FUNCTION MCGetPosition(mcChannelNo, mcUnitType: INTEGER) : LongInt;
  221. PROCEDURE MCGetProgram(mcDiscsID: LongInt; mcProgPtr: resultbuf255ptr);
  222. PROCEDURE MCGetSpeeds(mcChannelNo: INTEGER; speedListPtr: String255Ptr);
  223. FUNCTION MCGetStatus(mcChannelNo, mcStatusSel: INTEGER) : INTEGER;
  224. FUNCTION MCGetTimes(mcChannelNo, mcTimesSel: INTEGER) : LongInt;
  225. PROCEDURE MCGetTrackTitle(mcDiscsID, mcTrackNo: INTEGER; trTitlePtr: String255Ptr);
  226. PROCEDURE MCJog(mcChannelNo, mcUnitType: INTEGER;  mcNJog: LongInt; mcJogRepeat:INTEGER);
  227. PROCEDURE MCPause(mcChannelNo: INTEGER);
  228. PROCEDURE MCPlay(mcChannelNo: INTEGER);
  229. PROCEDURE MCRecord(mcChannelNo: INTEGER);
  230. PROCEDURE MCSetAudio(mcChannelNo, mcAudioCtl: INTEGER);
  231. PROCEDURE MCSetVolume(mcChannelNo, mcLeftVol, mcRightVol: INTEGER);
  232. PROCEDURE MCScan(mcChannelNo, mcDirection: INTEGER);
  233. FUNCTION MCSearchDone(mcChannelNo: INTEGER): BOOLEAN;
  234. PROCEDURE MCSearchTo(mcChannelNo, mcUnitType: INTEGER;  searchLoc: LongInt);
  235. PROCEDURE MCSearchWait(mcChannelNo: INTEGER);
  236. PROCEDURE MCSendRawData(mcChannelNo: INTEGER; mcNativePtr: gsstring255Ptr);
  237. PROCEDURE MCSetDiscTitle(mcDiscsID: LongInt; titlePtr: String255Ptr);
  238. PROCEDURE MCSetProgram(mcDiscsID: LongInt; mcProgPtr: gsstring255ptr);
  239. PROCEDURE MCSetTrackTitle(mcDiscsID: LongInt; mcTrackNo: INTEGER;  titlePtr: String255Ptr);
  240. PROCEDURE MCSpeed(mcChannelNo, mcFPS: INTEGER);
  241. PROCEDURE MCStop(mcChannelNo: INTEGER);
  242. PROCEDURE MCStopAt(mcChannelNo, mcUnitType: INTEGER; mcStopLoc: LongInt);
  243. FUNCTION MCTimeToBin(mcTimeValue: LongInt) : LongInt;
  244. PROCEDURE MCWaitRawData(mcChannelNo: INTEGER; rawDataPtr: resultbuf255ptr;
  245.                         tickWait: INTEGER;  termMask: termMaskRec);
  246.  
  247.  
  248. IMPLEMENTATION
  249. END.